<?php
class User extends AppModel {

	var $name = 'User';
	var $validate = array(
		'username' => array(
						'maxLength' => array('rule'=>array('maxLength',15), 'message' => 'Tên đăng nhập không được quá 15 ký tự'),  
						'alphanumeric' => array('rule' => 'alphaNumeric', 'message' => 'Tên đăng nhập chỉ được gồm chữ và số'),
						'isUnique' => array('rule'=>'isUnique', 'message'=>'Tên đã tồn tại, hãy chọn tên khác'),
				    ),
		 'password' => array(
	            'alphanumeric' => array(
	            	'rule' => 'notEmpty',
	            	'message' => 'Mật khẩu không được trống'
					),
				'identicalfieldvalues' => array(
					'rule'			=> array('identicalFieldValues', 'repassword'),
					'message'		=> 'Mật khẩu nhập lại không đúng',
					'on'			=> 'create'
					)
			),
			
		
         'tel' => array(
            'phonenumber' => array(
                'rule'            => array('custom', "/^[0-9' ']*$/i"),
                'message'        => 'Số điện thoại không hợp lệ'
            )),
            
        'name' => array(
            'blank'         => array(
                'rule'            => 'notEmpty',
                'message'        => 'Họ tên không được trống'
            )),    
        
        'address' => array(
            'blank'         => array(
                'rule'            => 'notEmpty',
                'message'        => 'Địa chỉ không được bỏ trống'
            )),
		//'tel' => array('phone'),
		//'fax' => array('phone'),
		
		'email' => array(
				        'rule' => array('email', true),
				        'message' => 'Email không hợp lệ'
    					),
    				
    	
    	//'address' => array('rule'=>'VALID_NOT_EMPTY','message'=>'Địa chỉ không được trống'),
    					
		
	);

	//The Associations below have been created with all possible keys, those that are not needed can be removed
	var $belongsTo = array('Group');
	/*var $hasAndBelongsToMany = array(
            'Group' => array('className' => 'Group',
                        'joinTable' => 'group_users',
                        'foreignKey' => 'user_id',
                        'associationForeignKey' => 'group_id',
                        'unique' => true
            )
    );*/
    
	/*var $hasMany = array(
			'News' => array('className' => 'News',
								'foreignKey' => 'user_id',
								'dependent' => false,
								'conditions' => '',
								'fields' => '',
								'order' => '',
								'limit' => '',
								'offset' => '',
								'exclusive' => '',
								'finderQuery' => '',
								'counterQuery' => ''
			)
	);*/
	/**
	 * So sánh dữ liệu nhập giữa 2 trường
	 *
	 * @param array $field: dữ liệu nhập
	 * @param string $compare_field: trường cần so sánh
	 * @return bollean (true: giống nhau , false: khác)
	 */
	function identicalFieldValues( $field=array(), $compare_field=null ) 
    {
        foreach( $field as $key => $value ){
            $v1 = $value;
            $v2 = $this->data[$this->name][ $compare_field ];      
            if ($key == 'password') $v2 = AuthComponent::password($v2);            
            if($v1 !== $v2) {
                return FALSE;
            } else {
                continue;
            }
        }
        return TRUE;
    } 
}
?>